// js-cookie是一个简单的,轻量级的处理cookies的js API，用来处理cookie相关的插件
// 下载后引入使用   npm install js-cookie --save
import Cookies from "js-cookie";

// 组件中使用
Cookies.set('name', 'value');    // 创建cookie
Cookies.get('name');             // 读取指定cookie值
Cookies.get();                   // 读取所有可见cookie
Cookies.remove('name');          // 删除某项cookie值


// 全局中使用，在mian.js中全局引入 (调用 this.$cookie)
/* 
    存cookie  set方法支持的属性有：
    expires     ->过期时间
    path        ->设置为指定页面创建cookie
    domain      ->设置对指定域名及指定域名的子域名可见
    secure      ->值有false和true, 表示设置是否只支持https, 默认是false
*/
this.$cookie.set('key', 'value');                               // 创建cookie
this.$cookie.set('key', 'value', { expires: 27 });              // 创建有效期27天的cookie
this.$cookie.set('key', 'value', { expires: 17, path: '' });    // 配置path, 为指定页面创建有效期7天的cookie
this.$cookie.get('key');                                        // 获取指定key对应的value
this.$cookie.get();                                             // 获取所有cookie
this.$cookie.remove('key');                                     // 删除cookie
this.$cookie.remove('name', { path: '' })                       // 删除存了指定页面地址的cookie


// 如果存储的是对象
userInfo = { age: 11, score: 90 };      Cookies.set('userInfo', userInfo)
// 读取出来后需要JSON解析对象, 两种方法
let res = JSON.parse(Cookies.get('userInfo') || '{}');
Cookies.getJSON('userInfo') || '{}';


// Cookie属性，Cookies.set(名称, [值], [options])
// 1, 过期时间 expires, 指定什么时候自动删除cookie中的数据，默认是关闭浏览器就删除。
    Cookies.set('name', 'value', { expires: 365 });

// 2, 路径 path, 指定创建cookie的路径地址，默认是/。
    Cookies.set('name', 'value', { path: '' });

// 3, cookie的域 domain, 一个字符串，指示一个有效的域为cookie可见。
    Cookies.set('name', 'value', { domain: 'subdomain.site.com' })
    Cookies.get('name')  // => undefined (need to read at 'subdomain.site.com')

// 4, 表示cookie传输是否需要安全协议(https) secure, 是一个布尔值, 默认没有安全协议。
    Cookies.set('name', 'value', { secure: true })

// 5, 允许控制浏览器是否在跨站点请求时发送cookie: sameSite, 是一个字符串。
    Cookies.set('name', 'value', { sameSite: 'strict/lax/true' })


    